package com.stt.model;

import lombok.Data;

/**
 * 游戏角色基类
 * 实现Cloneable接口以支持原型模式的克隆操作
 * 包含角色的基本属性和状态
 *
 * @author Your Name
 * @version 1.0
 */
@Data
public class Character implements Cloneable {
    /**
     * 角色ID
     * 用于唯一标识一个角色实例
     */
    private Long id;
    
    /**
     * 角色名称
     * 玩家定义的角色名字
     */
    private String name;
    
    /**
     * 职业类型
     * 例如：Warrior（战士）、Mage（法师）
     */
    private String profession;
    
    /**
     * 角色等级
     * 默认从1级开始
     */
    private Integer level;
    
    /**
     * 攻击力
     * 决定角色造成的伤害
     */
    private Integer attack;
    
    /**
     * 生命值
     * 决定角色的存活能力
     */
    private Integer health;
    
    /**
     * 魔法值
     * 决定角色释放技能的能力
     */
    private Integer mana;
    
    /**
     * 实现深克隆方法
     * 用于创建当前角色的完整副本
     *
     * @return 克隆出的新角色对象
     * @throws RuntimeException 如果克隆失败
     */
    @Override
    public Character clone() {
        try {
            return (Character) super.clone();
        } catch (CloneNotSupportedException e) {
            throw new RuntimeException("Clone not supported", e);
        }
    }
} 